(function(){"use strict";const a={baseUrl:"https://reach-forms.hostingerusercontent.com",apiBaseUrl:"https://reach.hostinger.com",impressionEndpoint:"/api/v1/forms/{formId}/impression",impressionDedupeWindowMs:18e5};function m(r){const e=document.querySelector('script[src*="embed.js"]'),t=e==null?void 0:e.dataset[r];return t?t.replace(/\/+$/,""):null}function w(){return m("baseUrl")??a.baseUrl}function g(){return m("apiBaseUrl")??a.apiBaseUrl}function I(r){return`${w()}/form/${r}`}function S(r){return`${g()}${a.impressionEndpoint.replace("{formId}",r)}`}const v=a.impressionDedupeWindowMs,f=new WeakSet;class y{constructor(e,t){this.formId=e,this.container=t,this.iframe=null,this.abortController=new AbortController}destroy(){var e;this.abortController.abort(),(e=this.iframe)==null||e.remove(),this.iframe=null}createIframe(e){const t=document.createElement("iframe");return f.add(t),t.src=e,t.style.cssText="width:100%;border:none;overflow:hidden;display:block;",t.setAttribute("frameborder","0"),t.setAttribute("scrolling","no"),t.setAttribute("allow","clipboard-write"),t.title="Reach Signup Form",t}listenForMessages(e){window.addEventListener("message",t=>{var s,i;(i=(s=t.data)==null?void 0:s.type)!=null&&i.startsWith("reach:")&&(this.iframe&&t.source!==this.iframe.contentWindow||e(t.data.type,t.data.payload??{}))},{signal:this.abortController.signal})}sendMessage(e,t){var s,i;(i=(s=this.iframe)==null?void 0:s.contentWindow)==null||i.postMessage({type:e,payload:t},"*")}}class E extends y{constructor(){super(...arguments),this.observer=null,this.viewSent=!1}mount(){const e=this.createIframe(I(this.formId));this.iframe=e,this.container.appendChild(e),this.listenForMessages(this.handleMessage.bind(this)),this.setupViewTracking()}destroy(){var e;(e=this.observer)==null||e.disconnect(),this.observer=null,super.destroy()}handleMessage(e,t){switch(e){case"reach:resize":this.handleResize(t);break;case"reach:submitted":this.handleSubmitted();break;case"reach:redirect":this.handleRedirect(t);break}}handleResize({height:e}){this.iframe&&typeof e=="number"&&e>=0&&(this.iframe.style.height=`${e}px`)}handleSubmitted(){this.sendImpression("submit"),this.container.dispatchEvent(new CustomEvent("reach:form-submitted",{detail:{formId:this.formId},bubbles:!0}))}handleRedirect({url:e}){e&&A(e)&&(this.sendImpression("submit"),window.location.href=e)}setupViewTracking(){if(!("IntersectionObserver"in window)){this.trackView();return}this.observer=new IntersectionObserver(e=>{var s;const t=e[0];t!=null&&t.isIntersecting&&!this.viewSent&&(this.trackView(),(s=this.observer)==null||s.disconnect())},{threshold:.5}),this.observer.observe(this.container)}trackView(){this.viewSent||this.isViewDeduped()||(this.viewSent=!0,this.storeViewTimestamp(),this.sendImpression("view"))}sendImpression(e){try{fetch(S(this.formId),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({event:e}),credentials:"omit",keepalive:!0}).catch(()=>{})}catch{}}isViewDeduped(){try{const e=localStorage.getItem(`reach_imp_${this.formId}`);return e?Date.now()-Number(e){for(const e of r)for(const t of e.addedNodes){if(t.nodeType!==Node.ELEMENT_NODE)continue;const s=t;M(s),s.matches(c)&&l(s),s.querySelectorAll(c).forEach(l)}}),n.observe(document.body,{childList:!0,subtree:!0}))}function R(){n==null||n.disconnect(),n=null,o.forEach((r,e)=>{r.destroy(),e.removeAttribute(p)}),o.clear(),delete h[d]}const h=window;h[d]||(h[d]={init:u,destroyAll:R},document.readyState==="loading"?document.addEventListener("DOMContentLoaded",u):u())})();